

n= 8973111727043835268073030786154872680698373043779309133152761408036168040324790610629878698254512273043461353358713176585944330401628782665897826660934613
c1= 64284764317119422373346563850463475291505287640187549432070954036621825864368
c2= 9536794169507209829892131704431419340244159120365249097190319866115295918289

x=2293
y=2999

import gmpy2
import libnum

p1,s=gmpy2.iroot(n,2)
q=gmpy2.next_prime(p1)
p=n//q


for i in range(p-x+1,p-1):
    c1=(c1*i)%p
for i in range(q-y+1,q-1):
    c2=(c2*i)%q

dp=libnum.invmod(p,q-1)
dq=libnum.invmod(q,p-1)
m1=pow(c1,dp,q)
m2=pow(c2,dq,p)
m=libnum.solve_crt([m1,m2],[q,p])
print(libnum.n2s(int(m)))